package cn.com.idmy.cloud.config;

import java.util.Collection;
import java.util.HashSet;

public class ServiceConfig {
    public static String transactionExpressionPointcut = """
            execution(public * cn.com.idmy.*.service..*Service*.*(..)) ||
            execution(public * cn.com.idmy.*.*.service..*Service*.*(..)) ||
            execution(public * cn.com.idmy.*.*.*.service..*Service*.*(..))
            """;

    public static Collection<String> readTransactionalMethods = new HashSet<>() {
        {
            add("get*");
            add("list*");
            add("page*");
            add("has*");
            add("notHas*");
            add("map*");
            add("count*");
            add("sum*");
            add("avg*");
            add("abs*");
            add("min*");
            add("max*");
            add("search*");
            add("fetch*");
            add("query*");
            add("find*");
            add("newId");
        }
    };

    public static Collection<String> writeTransactionalMethods = new HashSet<>() {
        {
            add("add*");
            add("create*");
            add("del*");
            add("edit*");
            add("update*");
            add("remove*");
            add("submit*");
            add("complete*");
            add("finish*");
            add("copy*");
            add("cancel*");
            add("save*");
            add("ok*");
            add("lock*");
            add("unlock*");
            add("unpublish*");
            add("publish*");
            add("undo*");
        }
    };
}